C++跨平台开发与系统接口封装实战
📚 共计 30 章节
01
C++跨平台概述
跨平台开发的挑战 · C++标准与平台差异 · 工具链选择(CMake、Conan、vcpkg)
CMake
Conan
vcpkg
02
CMake构建系统
CMake基础语法 · 目标定义 · 库与可执行文件 · 跨平台编译选项
构建
语法
编译选项
03
预处理器与平台宏
_WIN32、__linux__、__APPLE__等宏 · 条件编译实战
宏
条件编译
跨平台
04
文件系统抽象
std::filesystem跨平台使用 · 路径处理 · 目录遍历
filesystem
路径
遍历
05
线程与同步机制
std::thread、std::mutex、std::condition_variable跨平台封装
线程
mutex
同步
06
网络编程封装
跨平台socket抽象 · asio库入门 · TCP/UDP封装
socket
asio
TCP/UDP
07
内存管理
智能指针(unique_ptr、shared_ptr)· 跨平台内存对齐 · 内存池设计
智能指针
内存对齐
内存池
08
字符串与编码
std::string与std::wstring · UTF-8/16/32处理 · ICU库集成
编码
ICU
Unicode
09
时间与日期
std::chrono跨平台使用 · 高精度计时器 · 时区处理
chrono
计时器
时区
10
日志系统设计
spdlog库集成 · 日志级别 · 异步日志 · 跨平台文件写入
spdlog
异步
日志
11
配置解析
JSON (nlohmann/json) · YAML (yaml-cpp) · INI解析跨平台封装
JSON
YAML
INI
12
序列化与反序列化
protobuf入门 · 自定义二进制序列化 · 跨平台字节序处理
protobuf
字节序
序列化
13
动态库加载
dlopen (Linux) · LoadLibrary (Windows) · 跨平台插件系统
dlopen
LoadLibrary
插件
14
进程间通信 (IPC)
共享内存 · 命名管道 · 消息队列跨平台封装
共享内存
管道
消息队列
15
信号与异常处理
跨平台信号处理 · 结构化异常(SEH)封装 · 崩溃捕获
信号
SEH
崩溃捕获
16
系统信息获取
CPU信息 · 内存状态 · 操作系统版本 · 环境变量
CPU
内存
OS版本
17
注册表与配置文件
Windows注册表封装 · Linux gsettings · 跨平台配置中心
注册表
gsettings
配置中心
18
图形界面基础
Qt/GTK跨平台入门 · 事件循环 · 信号槽机制
Qt
GTK
信号槽
19
OpenGL/Vulkan封装
跨平台图形上下文创建 · 窗口系统集成(GLFW、SDL)
OpenGL
Vulkan
GLFW
20
音频处理
跨平台音频采集与播放 · PortAudio库封装 · 音频格式转换
PortAudio
音频采集
格式转换
21
视频处理
FFmpeg跨平台封装 · 解码/编码 · 硬件加速适配
FFmpeg
硬件加速
编解码
22
加密与安全
OpenSSL跨平台使用 · AES/RSA封装 · 哈希算法
OpenSSL
AES
RSA
23
数据库访问
SQLite跨平台封装 · ODBC抽象 · 连接池设计
SQLite
ODBC
连接池
24
HTTP客户端
libcurl跨平台封装 · REST API调用 · HTTPS证书处理
libcurl
REST
HTTPS
25
WebSocket通信
websocketpp库集成 · 实时通信 · 心跳机制
websocketpp
实时
心跳
26
测试框架
Google Test跨平台使用 · 模拟(Mocking)· 覆盖率分析
Google Test
Mock
覆盖率
27
性能分析
perf (Linux) · ETW (Windows) · 火焰图生成 · 跨平台性能计数器
perf
ETW
火焰图
28
打包与分发
CPack · WiX Toolset (Windows) · DMG (macOS) · AppImage (Linux)
CPack
WiX
AppImage
29
持续集成
GitHub Actions · Jenkins跨平台构建 · 矩阵测试
CI
GitHub Actions
Jenkins
30
实战项目:跨平台文件同步工具
从设计到发布全流程 · 综合运用所有封装技术
项目实战
文件同步
全流程